Oggcamp 2024

Published: October 31, 2024

On the 12th October 2024, I headed off to Manchester for OggCamp 2024. This is the first time I have participated in person at an event like this, so I was a little nervous! I made a weekend of it, and would like to share some of the talks I joined.

Location

oggcamp2024.jpg
Figure 1: OggCamp 2024

The event was held in the Pendulum Hotel in Manchester. This is a great space, with a big room for the Plenary discussions, a separate lecture theatre used on Saturday for several of the talks, and two smaller breakout rooms. There was also a big social space where Merchandise was available, the swap shop was held, and several organisation had their tables. In the middle of the spaces was a bar, with food available. I didn't stay in a hotel, but instead stayed with my daughter and her partner, who live in Manchester.

Talks - Day 1

The schedule for the event was shared on joind.in. These are the talks/events I joined on day 1:

Day 1 welcome

Information about the event, and a welcome from the organisers.

Computer Science is in the way of Climate Science

Background

A presentation from Michael Winston Dales, a Planetary Computing Fellow working in the Computer Lab at Cambridge University. He is working at the Cambridge Conservation Initiative. In this role, he is supporting the Climate Scientists with their research in to Climate Science, and in particular helping them with the computer science used to process and share their data.

computer-science-and-climate-science.jpg
Figure 2: Contact details for Michael Winston Dales

Data Sources

Many data sources are used for Climate Science:

To process the data, all the tools used are open source. The primary tools are Python and Julia, but these are underpinned by many other components and libraries. The scientists working with this data are not formally trained computer scientists, but experts in their fields and use software to process and evaluate their data. Much of the software available is not ideal for this target group. Reproducibility is key, and the whole software stack needs to be under control to ensure repeatable analysis results can be obtained.

Example Project

"Area of Habitat" map. This is created for 40,000 species, and the range metadata is a 150GB raster. The Habitat information is also a 150GB raster, so combining all this information is challenging - massive memory resources are required if you have a big area to cover. For example, the Mousse covers most of the Northern Hemisphere. You can use Google resources, but this has problems with reproducibility.

Sources of Truth

When APIs change, this can cause problems with existing code. Vernacular programmers can find debugging these issues challenging!

Summary

If you are working on code, please consider how you can support programmers who are using your output, but who are not experienced programmers.

System Containers

Background

Paul Barker presented his approach to containers on his own home network, and explained why he doesn't use docker, but uses Incus instead. Terminology:

  • Application Containers: bundle of dependencies for an application.

  • System Containers: Full Linux installation with a package manager.

Recommendation from Paul: Use systems containers instead of application containers. Alternatively, if you have to use docker, do due diligence on the docker file, and rebuild everything locally. For production, rebuild the entire docker file.

Why?

  • Application containers are often impossible to debug

  • It is impossible to confirm that all the packages in the container are up to date.

  • Licence compliance is difficult or even impossible to confirm

  • The quality of Dockerfiles is variable.

Alternatives

  • For system containers, use Incus

    • Forked from LXD after Canonical shinanigans

    • Supports VMs as well as containers

    • Runs as a service, managed via CLI or API.

    • Has stable and LTS releases

    • Easy to get started with, and achieve good results

    • Many advanced options

    • Supports device passthrough

  • Set up a flat network

  • use btrfs storage

  • sshd in every container

  • use pyinfra to provide infrastructure as code. Why not Ansible? You could use Ansible, but yaml is not a programming language!

My take outs

I use several docker containers on a VM on top of Proxmox. I have not given consideration to the points raised by Paul before this presentation, but realise I should take them more seriously. I will have formulated a plan to move away from docker, and to investigate Incus and pyinfra for my own uses.

Automating the home and annoying loved ones

Background

Charlie O'Hara lives in Berlin with her partner, and has been using Home Assistant to automate different elements in their home. This talk was an engaging, explanation of the journey they have followed to the current point. Now in their own apartment in Berlin, the opportunity to fully integrate Home Assistant into the fabric of the building has presented itself.

My Take outs

My first foray into Home Assistant was not a success, but I will happily take responsibility for this rather than placing the blame on Home Assistant. I already had MQTT running on a separate container, and struggled with the integration with HA. I was also not comfortable with HA recognising and integrating everything it could find on the network, even though it did ask me first. The final straw was when I had to re-integrate something, and removing the orphan entities proved quite challenging. For my simple automation experiments, I simply didn't need the layers of abstraction put in the way by HA, but preferred to use MQTT, NodeRed, grafana and ESPHome directly. Following this talk I reflected on this, and decided to give HA another try. I understand many improvements have been made over the last couple of years which remove some of my original pain points. I will use the integrated versions of nodeRed, ESPHome and MQTT rather than my external versions. I will also get a thin client (Dell Wyse 5070 or similar) on which to run HA.

Audio Podcasting 101

Background

Joe Ressington (@joeress@fosstodon.org) has been a podcaster for many years, and produces the excellent Late Night Linux family of Podcasts. This talk is aimed at giving the attendees a clear understanding of the requirements to create and deliver podcasts. It was not aimed at sharing how to create good content!

Recording Space

Minimise echo with basic physics

  • Lots of stuff and clutter

  • Carpet / rug

  • Cushions / pillows

  • Acoustic foam on walls

Can also use a "mini vocal booth" - gets rid of echo

Recommended Hardware

Audio-Technica ATR2100x-USB

  • Condenser vs Dynamic

    • Shure SM58

    • EV RA20

    Condenser microphones

    • Sound better in the perfect setup

    • More forgiving of poor technique

    BUT

    • Super sensitive - pick up background noises and echos etc

    • Need USB power

    Dynamic Mics

    • More voice capture vs background noise

    • requires good practice

  • USB vs XLR

  • POP filters / shields

    Foam vs arm type Arm type = better, but foam type better for video

How to record

This assumes more than one presenter, with the presenters remote from each other. Each person records their own output, and the content is brought together afterwards.

  • One person takes charge

  • Check everyone is ready

  • 3..2..1 - record - everyone starts together

  • Check the correct microphone is recording

  • 4 count sync 1..2..3..[4] (4 all together)

  • absolute silence - 10 secs (no breathing)

  • Send you recordings as FLAC (lossless)

Processing the Recorded Audio

Using Audacity

  • Noise Reduction

    • Record some ABSOLUTE silence

    • Select the silence

    • Listen CAREFULLY to the silence

    • Effect > Noise Reduction

    • get noise profile

    • select all

    • Open Noise Reduction again

    • Hit OK

  • Equalisation

    • Parametric EQ is the easiest

    • Good visual representation

    • Remove the low end "boom"

    • Boost or cut (sparingly) to taste

  • Compression

    • Dynamic compression

      • loud bits quieter

      • quiet bits louder

    • Makes everything roughly the same volume

    • Right level of compression to use is subjective

  • Editing

    • Top and tail vs "proper edit"

    • Leave. A. Beat. If you chop something out, keep the cadence of the discussion in place. ie - leave gaps!

    • Don't cut off breaths

    • Fades are your friends

    • Listen back IN FULL

    • Intro/outro music - keep short - attention spans are not what they used to be.

  • Publishing

    • MP3 is fine - works everywhere!

    • ogg if you must (as well)

    • 16-bit 44.1 kHz

    • 112 Kbps

    • Mono! Don't need to spread people out across two channels. Music podcast is of course different.

    • Tag your MP3

      • audacity

      • kid3/easyTag

    • Somewhere to host the MP3 file

      • Self host - Same server as the website. Would be a challenge if the show gets popular

      • Fireside (monthly subscription) Pros:

        • Very easy

        • everything managed

        • reasonably priced

        • Decent stats - downloads, regions etc.

        Cons:

        • Not much flexibility

        • No control if the service goes down

        • Could disappear one day

      • A CDN like libsyn (https://libsyn.com/)- monthly subscription

    • An RSS feed

      • Easy - Turnkey - fireside

      • HUGO - hard, but the best

      • WordPress

    • Where to put the RSS feed

      • Apple Podcasts

      • Spotify

        • used by many…So even if you don't like them, it is worth uploading the feed there.

      • YouTube

        • Every device has access to YouTube

        • A static image is better than nothing

        • A visualiser creates some movement which the algo likes (maybe?)

  • Tips

    Don't mess with the recording machine! If you can have a dedicated machine just for recording, that is ideal. Don't do any updates without fully testing them!

My Take Outs

I really enjoyed this talk, and the willingness of Joe to share his secrets! I actually have the hardware required to make a podcast already. I might have to do something with my office, but I would need to make a recording to investigate. As a result of this, encouraged by Joe's talk, I will have a go and probably do something for Hacker Public Radio (see later…).

Build a social media platform in 20 minutes using ActivityPub

Background

ActivityPub is a decentralised social networking protocol which is the basis of the fediverse, and this talk by Terence Eden (@edent@mastodon.social) walked us through creating a very simple ActivityPub server, complete with example code.

Code

Here, on gitlab. No warranty given or implied!

activitypub-code-example.jpg
Figure 3: QR Code for gitlab link

Message Passing

activitypub-message-flow.jpg
Figure 4: ActivityPub Message Passing

Return type

activitypub-return-type.jpg
Figure 5: ActivityPub return packet

My Take Outs

I would like to play with this, and consider whether there are applications where I could incorporate ActivityPub into my code.

Harmonised Amateur Radio Examination Certificate on Hacker Public Radio

Background

Ken Fallon is a volunteer for the Hacker Public Radio, and this talk was:

  • an explanation about Hacker Public Radio

  • Details about their efforts to create open material to train people to get their HAM licence. The HAREC syllabus is recognised in much of the world and used as a foundation for national HAM radio licences

  • An explanation of the links between hacking and HAM radio, encouraging participants to get involved with HAM radio if they have not already done so!

    hackers-and-ham.jpg
    Figure 6: Links between Hacking and HAM Radio

    I have a copy of Ken's slides here, shared under CC by-SA 4.0.

My Take Outs

Using the information above, I would like to contribute a podcast to HPR. Having discussed this with Ken, my first step would be a simple introduction Podcast, which can then be followed up with a more technical podcast afterwards. I also need to get on with upgrading my UK Foundation Licence to a Full Licence!

Talks - Day 2

Opening

Welcome back everyone!

Home automation 🏠 A beginner's foray down the rabbit hole

Background

Millie Perkins (@milperks@mastodon.social) started her homelab journey on a Raspberry Pi, and them moved to a Dell Wyse 5070 running Proxmox. This talk explained her use of Home Assistant, including customised dashboard setup, and connection to her car!

dell-wyse-5070.jpg
Figure 7: Millie's hardware/software stack

My take outs

This talk reinforced my aim to setup and use Home Assistant again! Millie has a very polished system which she has customised to work for her use cases. Commendable.

Lightning Talks - Lunch session

My First Open Source Contribution

Matt recounted the story of his first open source contribution.

Some Websites - Mark

Mark shared some of the websites he uses, demonstrating that "old-school" sites are still valuable. I particularly liked https://www.parkytowers.me.uk/thin. This is an excellent resource for setting up and re-purposing thin clients. I have already used the information found here while setting up my new (to me) Dell Wyse 5070.

FLOSS for the stars

Sorry - I didn't get the presenter's name - apologies! Some open source applications for star gazing:

  • Stellarium - on the phone

  • Kstars

  • Ekos - camera control, including the mount.

  • Siril - Image processing

89 things to know about GIT commits

By Jamie. Jamie's site is here: https://www.jvt.me/. Unfortunately his 89 things presentation appears to have been taken down (or I wrote down the link incorrectly).

Building an Open Hardware PLC device

Learn to code - old school graphics!

Open Source Embroidery

Background

Margaret Low is based at Warwick University, and this talk explains how to use open source software with commercially available embroidery machines. As well as the work in the university, Margaret does outreach work with schools, training teaching staff to use the software with the children. As well as the talk, she set up practical demonstrations with some of her machines. Sadly, when I went to have a look later on Sunday afternoon, she had already gone, having a long drive back home in the evening.

Software

Two packages were shared:

  • Turtle Stitch - which runs in the browser

  • Ink Stitch - this is based on Inkscape, and is an extension you install after installing Inkscape.

Machines

These come with either 1 needle, or multiple needles. With the former, you need to change the thread by hand each time you want a different colour. With the latter, you can have as many thread colours as you have needles. Domestic machines may have up to 6 needles, but professional machines can have up to 32 needles. Even the domestic machines can be quite expensive (> £1000).

My take outs

Fabulous to see this in action, and to see the application of Open Source software in this field. Personally, I won't be doing anything with the information. I guess if you could make your design, then send it to someone to produce, that might be interesting?

Lit Up - Electric Elephants

Background

Chris Ellis shared his journey creating LED badges. Initially these were for a Postgres conference (hence the Elephant reference), but this has expanded since!

Hardware

Details of the badges is available https://intrbiz.com/electronics/led-pcb-art/.

Software

Chris has developed a really impressive simulator and programmer, which you can find here.

My Take Outs

First of all, a wonderful BBC Owl badge! Thanks Chris! I loved the evolution of the badges, and the development of the simulator/programmer. I need to work on my PCB development skills using KiCAD, and also my embedded programming skills. Chris clearly has all these skills, and has brought them together very effectively indeed.

Fighting Ens**ttification with ActivityPub

Background

James Smith (@Floppy@mastodon.me.uk) is the creator of ManyFold - a distributed system for sharing 3-D print models. ActivityPub is used to connect the different instances together and to Mastodon. You can find James's instance at https://manyfold.floppy.org.uk/, and from there you can find the links to the github repository.

Talk

James explained how to incorporate ActivityPub into your application, and how you can fight Ens**ttification as a result.

My Take outs

This talk reinforced the benefits of (and some of the challenges with implementing) ActivityPub into your application.

Book camp 📖 Discuss your favourite books

Background

A collaborative discussion where each of the attendees shared their favourite books. Lot's of wonderful ideas for books to read in the future. Thanks to Terence Eden and Tanya for moderating and taking the notes.

Books:

Table 1: Books recommended by delegates
Title Author Comments
4000 weeks Oliver Berkeman Rephrasing our relationship with time
Podkin One-Ear Kieran Larwood  
Lord of the Rings J.R.R. Tolkien  
The Rise and Fall of the Working Class Selina Todd  
Red Mars Kim Stanley Robinson  
Pragmatic Programmer David Thomas  
We are Legion, We are Bob Dennis Taylor Book 1 of the bobiverse
Discworld Series Terry Pratchett  
The Empire of Normality Robert Chapman  
Children of Time Adrian Tchaikovsky  
The Dispossessed Ursula Le Guin  
The Three Body Problem Cixin Liu  
Fall or Dodge in Hell Neil Stephenson  
Git Commit Murder Michael Warren Lucas  
Snow Crash Neal Stephenson 30th Anniversary Edition has extra bit
Tomorrow, Tomorrow, Tomorrow Gabrielle Zevin  
There is no anti-memetics division QNTM  
The Fifth Season N.K. Jemisin Broken Earth Series
The Brentford Trilogy Robert Rankin  
Fight Club Chuck Palahnuik Also Damned
Digital Korea Tomi Ahonen  
Jonnie The Homicidal Maniac Thonen Vasquez  
Lexicon Max Barry  

UTAW Panel: "I'm a tech worker, I don't need a union"

Tech workers traditionally haven't joined unions, but with the changes in the tech industry, it is clear that union membership is worth considering. This Panel gave a chance for UTAW to share their activities, and to field questions from the audience about the benefits of membership.

Lightning Talks @ Pendulum / Main Room

Cultural Resources you might not know about

Daniel Littlewood (danielittlewood@fosstodon.org and https://danielittlewood.xyz)

Password Creation

Use a secret word, and a hashing algorithm. Take the name of the website, add the secret word, then use the hashing algorithm to create the password. Easy to remember how to recover the password in the future, without the need for a password manager.

Output Markdown from a Website

https://urltomarkdown.com The code is at https://github.com/macsplit. Libraries are listed at the bottom of the urltomarkdown.com website.

Frankenender

Fixing/Modifying a broken 3D printer! https://www.leighhack.org

Developer on Duty

Setting up a rota to share responsibilities for responding to problems around the clock - Developer on Duty.

Closing / OggCamp Raffle

Wrap up! Thanks to the team of organisers and volunteers, the presenters and to the participants who made the event an enjoyable experience.

Summary

I had a great weekend, and learned many things. Since OggCamp, I have set up a webpage created using org-mode, and also purchased a Dell Wyse 5070 which will be the tool for experimentation with some of the applications shared in the OggCamp presentations. See you at the next one?